﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
/*Q23:先输⼊10个整数存放在数组中，再输⼊⼀个整数n，删除数组中所有等于n的数字，
      数组中剩余的数组保证数组的最前⾯，打印剩余的数字。

  Q28:调用函数动态开辟

  Q32：回文数

  Q33: 排序

  Q35: 二进制解法

  Q36：改变字符串
*/

//输⼊y和m两个整数，y表⽰年份，m表⽰⽉份，计算y年m⽉有多少天，并输出天数
//int main()
//{
//    int y = 0, m = 0;
//    scanf("%d %d", &y, &m);
//    int dataOfM[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
//    if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
//    {
//        dataOfM[1] = 29;
//    }
//    printf("%d年%d月有%d天", y, m, dataOfM[m - 1]);
//    return 0;
//}



//先输⼊10个整数存放在数组中，再输⼊⼀个整数n，删除数组中所有等于n的数字，数组中剩余的数
//组保证数组的最前⾯，打印剩余的数字。
//int main()
//{
//    int arr[10];
//    for (int i = 0; i < 10; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//    int del = 0;
//    scanf("%d", &del);
//    int j = 0;
//    for (int i = 0; i < 10; i++)
//    {
//        if (arr[i] != del)
//        {
//            arr[j++] = arr[i];
//        }
//    }
//    for (int i = 0; i < j; i++)
//    {
//        printf("%d ",arr[i]);
//    }
//    return 0;
//}


//写⼀个函数my_strcpy，实现拷⻉字符串的功能，假设给定⼀个字符数组a，再给定⼀个字符数组
//b，将字符串a中的内容拷⻉到字符串b中，拷⻉内容包含字符串末尾的 \0 字符。
//void my_strcpy(char* a, char* b)
//{
//    int i = 0;
//    while (a[i] != '\0')
//    {
//        b[i] = a[i];
//        i++;
//    }
//    b[i] = '\0';
//}
//int main()
//{
//    char a[] = "hello world";
//    char b[20] = { 0 };
//    my_strcpy(a, b);
//    printf("%s",a);
//    return 0;
//}


//输⼊两个升序排列的序列，将两个序列合并为⼀个有序序列并输出。
//输⼊包含三⾏，第⼀⾏包含两个正整数n, m，⽤空格分隔。n表⽰第⼆⾏第⼀个升序序列中数字的个
//数，m表⽰第三⾏第⼆个升序序列中数字的个数。其中
//1 <= n <= 30, 1 <= m <= 30 第⼆⾏包含 n 个整数，⽤空格分隔。
//第三⾏包含 m 个整数，⽤空格分隔。
//输出为⼀⾏，输出⻓度为n + m的升序序列，即⻓度为n的升序序列和⻓度为m的升序序列中的元素重
//新进⾏升序序列排列合并。
//int main()
//{
//    int arr1[10] = { 0 };
//    int arr2[10] = { 0 };
//    int ret[20] = { 0 };
//    for (int i = 0; i < 10; i++)
//    {
//        scanf("%d", &arr1[i]);
//    }
//    for (int i = 0; i < 10; i++)
//    {
//        scanf("%d", &arr2[i]);
//    }
//    int i = 0;
//    int j = 0;
//    int k = 0;
//    while (i < 10 && j < 10)
//    {
//        if (arr1[i] < arr2[j])
//        {
//            ret[k++] = arr1[i++];
//        }
//        else
//        {
//            ret[k++] = arr2[j++];
//        }
//    }
//    if (i == 10)
//    {
//        while (j < 10)
//        {
//            ret[k++] = arr2[j++];
//        }
//    }
//    if (j == 10)
//    {
//        while (i < 10)
//        {
//            ret[k++] = arr1[i++];
//        }
//    }
//    for (int r = 0; r < 20; r++)
//    {
//        printf("%d ", ret[r]);
//    }
//    return 0;
//}



//#include<string.h>
//int main()
//{
//	char arr[] = "this is great thanks very much";//@.即为分隔符
//	char buf[40] = { 0 };//创建临时拷贝的数组
//	strcpy(buf, arr);
//	char* p = " ";
//	char* r = NULL;
//	printf("%s\n", buf);
//	for (r = strtok(buf, p); r != NULL; r = strtok(NULL, p))
//	{
//		printf("%s\n", r);
//		printf("%s\n", buf);
//	}
//	return 0;
//}